﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KPWeb.Class;
using KPWeb.Data;

namespace KPWeb.Account
{
  
    public partial class LoginWUM : KPPage
    {
       private void initListaUprawnien()
        { 
            try
            {
                this.TypUprawnienP.Items.Clear();
                foreach (vLex_TypUprawnien item in UprawnieniaLogowanie.GetListaUprawnien())
                {
                    this.TypUprawnienP.Items.Add
                       (new ListItem() { Text =item.NazwaSkroconaUprawnien+" ("+ item.KodUprawnien + ")" , Value = item.KodUprawnien });
                }
                Current.Uprawnienia = Stale.uprMoje;
                TypUprawnienP.SelectedValue = Current.Uprawnienia;
             }
            catch (Exception ex)
            {
                throw new Exception("Brak połaczenia z serwerem /////login:" + " xxxx" + " " + ex.Message);
            }
        }
        private  void init()
    {
            string login="";
        try
        {
                 using (ActiveDirectory.WorkflowActiveDirectoryClient ad = new ActiveDirectory.WorkflowActiveDirectoryClient())
                {
                   login = HttpContext.Current.User.Identity.Name;
                   ActiveDirectory.UserInfo user = ad.GetUsersInfoByAcountName(login.Split('\\').Last());
   
                     //    string sTemp1 = user.DisplayName;
                    string sTemp2 = user.AccountName; 
                    //    string sTemp3 = user.PesonDescription;//mgr
                    //  string sTemp4 = user.Surname + " " + user.Name + " / " + user.DivisionCode;
                    //  string sTemp6 = user.TelephoneNumber;
                    ((TextBox)this.LoginUser.FindControl("UserName")).Text = sTemp2;
                    LoginUser.UserName = user.AccountName;


                    if (user.Email == null)
                    {
                        ((TextBox)this.LoginUser.FindControl("Email")).ForeColor = System.Drawing.Color.Red;
                        ((TextBox)this.LoginUser.FindControl("Email")).Text = "Brak adresu e-mail";
            
                        bZarejestruj.Enabled = false;

                    }
                    else
                    {
                        ((TextBox)this.LoginUser.FindControl("Email")).Text = user.Email;
                    }
               }
        }
        catch (Exception ex)
        {
           
        //    throw new Exception("Brak połaczenia z serwerem /////login:" + " xxxx" + " " + ex.Message);
        //    ((Label)this.LoginUser.FindControl("ErrorAD")).Text = "AD mmmmmm";

            if (login.ToLower() == "am\\waldemar.sztulpa")
            {
                LoginUser.UserName = "waldemar.sztulpa";
                ((TextBox)this.LoginUser.FindControl("Email")).Text = "waldemar.sztulpa@wum.edu.pl";
                // michał "1560"; ja "2957"// ja 1M12 3288
                Current.FirmaID = "1"; 
                Current.UprawnieniaFunkcjaID = "14";
            }
            else
            this.Label2.Text = "UWAGA: brak połączenia z AD (awaria) lub ze względu na stan zatrudnienia w firmie wyłączono dostęp do programu. Zgłoś problem Koordynatorowi! Nie można pracować w systemie KPWeb. ";

        }
    }
        protected void Page_Load(object sender, EventArgs e)
        {
            Current.OsobaID = "-1";
           this.Error1.Visible = false;
           init();
       

           if (!this.IsPostBack)
            {
                initListaUprawnien();
                LoginUser.FindControl("Password").Focus();
            
           }

        }

        protected void LoginButton_Click(object sender, EventArgs e)
        {
            //jesli ok to zaloguj

         int osobaID = UprawnieniaLogowanie.GetOsobaID(LoginUser.UserName, Szyfrowanie.EncodePassword(LoginUser.Password), TypUprawnienP.SelectedValue);
         init();
            if (osobaID > 0)
            {
                Current.OsobaID = osobaID.ToString();
                Current.Uprawnienia = TypUprawnienP.SelectedValue;

                Current.JednostkaID = Model.GetJednostkaGlownaDlaJednostki(Osoby.GetOsobaJednostkaID(osobaID)).ToString();


                vKP_JednostkiFirmy item = Model.GetJednostkaFirma(int.Parse(Current.JednostkaID));
                Current.FirmaID = item.FirmaID.ToString();
                Current.Login = LoginUser.UserName;

                Server.Transfer("~/Default.aspx");

            }
            else
            {
                this.Error1.Visible = true;
            }

        }

        protected void LoginGoRejestracja_Click(object sender, EventArgs e)
        {
            Server.Transfer("~/Account/Register.aspx");

        }
        
            protected void typUprawnienChange(object sender, EventArgs e)
       {
        Current.Uprawnienia = TypUprawnienP.SelectedValue;
       }
     
    }
}
